// import sdk from 'common/wehotelSdk'
import sdk from 'sdk'
/**
 * 客户端定位接口存在问题
 * Q1 如果手机被禁用定位 或者定位超时，回调的时间过长
 * Q2 定位接口成功，但是得到的坐标为空，此时得到的 msgCode还是为100，表现不对
 * 重置超时时间为 10秒
 * 以 promise的形式，返回正确的成功回调以及失败回调
 */
let timer
export default function getLocation() {
  let isCall = false
  return new Promise((resolve, reject) => {
    timer && clearTimeout(timer)
    // 设置超时
    timer = setTimeout(() => {
      // console.log('location timeout')
      // window.tracer.log({
      //   code: 103
      // })
      reject({
        msgCode: -1
      })
      isCall = true
    }, 3000)
    // app初始化时如果没有成功定位，则不会有缓存的定位信息导致提示定位失败
    sdk.gainLocation({forceUpdate: true})
      .then(res => {
        timer && clearTimeout(timer)
        // 有坐标，表示成功
        if (res.longitude) {
          !isCall && resolve(res)
        } else {
          // 没有坐标 定位失败
          !isCall && reject({
            msgCode: -2
          })
        }
        isCall = false
      })
      .catch(res => {
        reject({
          msgCode: -2
        })
      })
  })
}
